#ifndef __Collections_IArraySortHelper2_H__
#define __Collections_IArraySortHelper2_H__

///<summary>
/// IArraySortHelper2<TKey,TValue>
///</summary>
#define Collections_IArraySortHelper2(TKey,TValue) bindT(Collections_IArraySortHelper2,TKey##TValue)
#define Declare_Collections_IArraySortHelper2(TKey, TiKey, TValue, TiValue) \
	private enum { \
		_Collections_IArraySortHelper2_##TKey##TValue##VIndex_Sort, \
		_Collections_IArraySortHelper2_##TKey##TValue##VIndexNext, \
	}; \
	public interfaceT(Collections_IArraySortHelper2,TKey##TValue,, \
		virtualT(Collections_IArraySortHelper2,TKey##TValue,void,Sort, TiKey keys[], TiValue values[], int_ index, int_ length, Collections_IComparer(TKey) *comparer); \
	);
#define Implement_Collections_IArraySortHelper2(TKey, TiKey, TValue, TiValue) \
	Implement_TypeTI(Collections_IArraySortHelper2,TKey##TValue,)

#endif /* __Collections_IArraySortHelper2_H__ */